package com.example.jpatest.service;

import com.example.jpatest.entity.Enter;
import com.example.jpatest.entity.Student;
import com.example.jpatest.entity.Team;

import java.util.List;
import java.util.Set;

/**
 * @author czx
 */
public interface StudentService {

    /**
     * 保存学生
     * @param student 学生对象
     * @return 学生信息
     */
    Student saveStudent(Student student);

    /**
     * 根据学号查找学生
     * @param studentNumber 学号
     * @return 学生信息
     */
    Student getByStudentNumber(String studentNumber);

    /**
     * 根据学号删除学生
     * @param StudentNumber 学号
     */
    void deleteByStudentNumber(String StudentNumber);

    /**
     * 获得所有的学生
     * @return 学生列表
     */
    List<Student> getStudents();

    /**
     * 学生加入队伍
     * @param student 学生信息
     * @param team 队伍信息
     */
    void joinTeam(Student student,Team team);

    /**
     * 学生退出队伍
     * @param student 学生信息
     * @param team 队伍信息
     */
    void quitTeam(Student student,Team team);

    /**
     * 获得学生加入的队伍
     * @param student 学生信息
     * @return 队伍列表
     */
    Set<Team> getAllTeams(Student student);

    /**
     * 学生是否在队伍内
     * @param student 学生信息
     * @param team 队伍信息
     * @return 是否入队
     */
    boolean isInTeam(Student student, Team team);

    /**
     * 查找学生所有的报名信息
     * @param student 学生信息
     * @return 报名信息
     */
    List<Enter> getEnters(Student student);
}
